//package org.sunyaxing.transflow.transflowapp.controllers;
//
//import cn.hutool.core.io.LineHandler;
//import cn.hutool.core.io.file.Tailer;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.boot.ApplicationArguments;
//import org.springframework.boot.ApplicationRunner;
//import org.springframework.stereotype.Component;
//
//import javax.websocket.OnClose;
//import javax.websocket.OnMessage;
//import javax.websocket.OnOpen;
//import javax.websocket.Session;
//import javax.websocket.server.ServerEndpoint;
//import java.io.File;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * 获取 agent 日志
// */
//@Slf4j
//@Component
//@ServerEndpoint(value = "/transflow/agent/logs")
//public class AgentLogsWs implements LineHandler, ApplicationRunner {
//    public static final Map<String, Session> SESSION_MAP = new HashMap<>();
//
//    @OnOpen
//    public void onOpen(Session session) {
//        SESSION_MAP.put(session.getId(), session);
//    }
//
//    @OnClose
//    public void onClose(Session session) {
//        SESSION_MAP.remove(session.getId());
//        try {
//            session.close();
//        } catch (Exception e) {
//            log.error("send message error", e);
//        }
//    }
//
//    @OnMessage
//    public void onMessage(String message, Session session) {
//        log.info("EventWsController onMessage");
//        log.info("message: {}", message);
//    }
//
//    public static synchronized void sendMessage(String message) {
//        for (Session session : SESSION_MAP.values()) {
//            try {
//                session.getBasicRemote().sendText(message);
//            } catch (Exception e) {
//                log.error("send message error", e);
//                try {
//                    session.close();
//                } catch (Exception e2) {
//                    log.error("send message error", e2);
//                }
//            }
//        }
//    }
//
//    @Override
//    public void handle(String line) {
//        sendMessage(line);
//    }
//
//    @Override
//    public void run(ApplicationArguments args) throws Exception {
//        Tailer tailer = new Tailer(new File("/opt/transflow/logs/log_agent.log"), this, 100);
//        tailer.start(true);
//    }
//}
